package demo;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author liangzai
 * @Description:
 */
public class Training {
    //推多米诺
    public String pushDominoes(String dominoes) {
        char[]c=dominoes.toCharArray();
        int n=c.length;
        List<int[]> list=new ArrayList<>();
        for(int i=0;i<n;i++) {
            char cc=c[i];
            if(cc=='L') {
                list.add(new int[] {-1,i});
            }
            if(cc=='R') {
                list.add(new int[] {1,i});
            }
        }
        int ll=0,rr=0;
        if(list.size()==0)return dominoes;
        for(int i=1;i<list.size();i++) {
            int[]l=list.get(i-1);
            int[]r=list.get(i);
            if(l[0]==-1&&r[0]==1) {
                continue;
            }
            if(l[0]==-1&&r[0]==-1) {
                ll=l[1];rr=r[1];
                for(int j=ll;j<=rr;j++) {
                    c[j]='L';
                }
            }
            if(l[0]==1&&r[0]==1) {
                ll=l[1];rr=r[1];
                for(int j=ll;j<=rr;j++) {
                    c[j]='R';
                }
            }
            if(l[0]==1&&r[0]==-1) {
                ll=l[1];rr=r[1];
                while(ll<rr) {
                    c[ll]='R';
                    c[rr]='L';
                    ll++;rr--;
                }
            }
        }
        if(list.get(0)[0]==-1) {
            for(int i=0;i<n;i++) {
                if(c[i]=='L') {
                    break;
                }
                c[i]='L';
            }
        }
        if(list.get(list.size()-1)[0]==1) {
            for(int i=n-1;i>=0;i--) {
                if(c[i]=='R') {
                    break;
                }
                c[i]='R';
            }
        }
        return new String(c);
    }
}
